package com.project.petLossSystem.service;

import com.project.petLossSystem.po.PetPost;
import com.project.petLossSystem.util.PageQueryUtil;
import com.project.petLossSystem.util.PageResult;
import com.project.petLossSystem.vo.petPost.IndexPetPostVO;
import com.project.petLossSystem.vo.petPost.PetPostDetailVO;
import com.project.petLossSystem.vo.petPost.SearchPetPostVO;
import org.opencv.core.Rect;
import org.springframework.boot.web.servlet.server.Session;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpSession;
import java.util.List;

public interface PetPostService {
    // 添加，返回帖子id
    String insertPost(PetPost petPost, String mainImagePath);

    // 后台分页
    PageResult getPostPage(PageQueryUtil pageQueryUtil);

    // 删除
    boolean deletePosts(Long[] postIds);

    // 首页热度帖子
    List<IndexPetPostVO> getIndexPetPostVO(int number); // 参数是数量

    // 首页新发布帖子
    List<SearchPetPostVO> getNewPostsForIndex(int number, byte postType); // 参数

    // 帖子详细
    PetPostDetailVO getPostDetail(Long postId);

    // 个人帖子
    List<IndexPetPostVO> getSelfPosts(HttpSession session);

    // 搜索分页
    PageResult searchPostPage(PageQueryUtil pageQueryUtil);

    // 得到今天的帖子数量
    long getPostCountToday(byte postType);

    // 获取图片匹配的帖子id存到redis
    String getPostIdsForMatch(String imagePath, Long petCategoryId, Byte postType, Integer addressCategoryId, Long userId);

    // 匹配分页
    PageResult matchPostPage(PageQueryUtil pageQueryUtil, List<String> postIds);

    // 用户删除自己帖子
    String deleteOwnPost(Long postId, HttpSession session);
}
